package Junit;

import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;

@TestMethodOrder(MethodOrderer.Random.class)
//@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class JunitTest01 {
//    @Test
//    void B(){
//        System.out.println("B");
//    }

    @Test
    void Test01(){
        System.out.println("1");
    }
    @Test
    void Test02(){
        System.out.println("2");
    }
    @Test
    void Test03(){
        System.out.println("3");
    }
    @Order(1) // 然后加上这个注解表示 执行的权重， 第一个先执行
    // 如果是随机执行的话， 那么这个注解就没有效果了

    @Test
    void A(){
        System.out.println("A");
    }

    @Order(2)// 这个表示第二个执行
    @Test
    void B(){
        System.out.println("B");
    }


    // 这样的写法， 全部运行之后， 是按照 顺序来执行的
    // 但是如果 如果调换一下位置
    // 测试用例的顺序还是与之前保持一直的
    // 那么为什么执行顺序是固定的呢？
    // 因为 Junit 有默认的执行顺序， 有默认的执行算法
    //
    // 那么如何手动干预 测试的执行顺序呢？
    // 方法一： 需要在类上面加上 @TestMethodOrder(MethodOrderer.OrderAnnotation.class) 这样的一个注解

    // 方法二： 一种随机的执行方式
    //

}
